<template>
  <!-- 3、绑定value属性，绑定父组件传递过来的值 -->
  <el-cascader :value="value" separator="-" :options="list" :props="{label: 'name', value: 'id'}" @change="onSelect" />
</template>

<script>
import { getDepartmentAPI } from '@/api/department'
import { arrayToTree } from '@/utils'

export default {
  // 2、 定义一个属性，用来接收父组件传递过来的值
  props: {
    value: {
      type: Number,
      default: 0
    }
  },
  data() {
    return {
      list: []
    }
  },
  async created() {
    const res = await getDepartmentAPI()
    this.list = arrayToTree(res)
  },
  methods: {
    onSelect(val) {
      // 4、监听change事件，把选中的值通过自定义事件，返回给父组件
      // 选取最后一个部门编号
      this.$emit('input', val[val.length - 1])
    }
  }

}
</script>
